package 树;

import binary_tree.TreeNode;

/**
 129. 求根节点到叶节点数字之和

      给你一个二叉树的根节点 root ，树中每个节点都存放有一个 0 到 9 之间的数字。
      每条从根节点到叶节点的路径都代表一个数字：

      例如，从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。
      计算从根节点到叶节点生成的 所有数字之和 。

      叶节点 是指没有子节点的节点
 *
 * @author macy
 * @date 2025/11/10 17:14
 */
public class TreeNodeSumNumbers {

    int sum=0;
    public static void main(String[] args) {

    }


    public int sumNumbers(TreeNode root) {
        dfs(root,0);
        return sum;
    }


    public void dfs(TreeNode root,int x){
        if(root ==null){
            return;
        }

        x=x*10+root.val;
        if(root.left==null && root.right==null){
            sum+=x;
            return;
        }

        dfs(root.left,x);
        dfs(root.right,x);
    }

}
